This disclosure generally relates to three-dimensional (3-D) visualization systems. In particular, this disclosure relates to systems and methods for controlling (e.g., selecting) the viewpoint of a 3-D visualization of an object.
As used herein, the term “viewpoint” is the apparent distance and direction from which a camera views and records an object. A visualization system allows a user to view an image of an object from a viewpoint that can be characterized as the apparent location of a virtual camera. As used herein, the term “location” includes both position (e.g., x, y, z coordinates) and orientation (e.g., look direction vector of a virtual line-of-sight).
A 3-D visualization system may be used to display images representing portions and/or individual components of one or more 3-D models of an object within a graphical user interface. Visualization systems may be used to perform various operations with respect to the image of the object. For example, a user may use a visualization system to navigate to an image of a particular part or assembly of parts within the object for the purpose of identifying information for use in performing an inspection.
Navigating in 3-D visualization environments can be difficult and time consuming, often requiring a moderate level of skill and familiarity with the 3-D visualization controls. As one illustrative example, a 3-D visualization system may be used to visualize different types of aircraft being manufactured at a facility and data about these aircraft. More specifically, a 3-D visualization application running on a computer may display a computer-aided design (CAD) model of an aircraft comprising many parts. With some currently available visualization systems, filtering the extensive amount of data available in order to obtain data of interest concerning a particular part may be more difficult and time-consuming than desired. Some 3-D visualization systems require training and experience in order for the user to easily navigate through the CAD model of the aircraft. In particular, an interested user may find it difficult to remember or recreate a particular viewpoint of a CAD model of an aircraft (or other vehicle) to be displayed on a display screen.
Existing 3-D visualization solutions use named locations or have separate or proprietary approaches to recalling predefined viewpoints. Some 3-D visualization applications incorporate a visual query module, which is a specific capability that uses a selectable 2-D image map to instruct the application which models to load into the system. This functionality is fully integrated within the 3-D visualization application and does not use an external API to communicate with another application. Since the visual query module is built into the 3-D visualization application, it is not as flexible and cannot be integrated into separate external processes. It is limited to use within a single instance of the 3-D visualization application and cannot work between two or more networked computers (e.g., it has no interprocess communication capability). At least one 3-D visualization application has the capability to link 2-D and 3-D data, but it is a custom application that implements its capabilities in a closed way, limiting the ability to make modifications to people with access to the source code. It also does not use interprocess communication through Hypertext Transfer Protocol (HTTP) and cannot run between multiple computers.
It would be desirable to supply an open viewpoint navigation interface that anyone can create, and that anyone with a networkable device can use to run a 2-D display application to control the viewpoint in a 3-D visualization application.